package py.com.alfa.escriba.web.rest.secure;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import py.com.alfa.escriba.exception.ServiceException;
import py.com.alfa.escriba.persistence.dto.ControlesseguimientoDTO;
import py.com.alfa.escriba.web.rest.EscribaService;

@Path(EscribaService.SECURE_PATH + "/controlesseguimiento")
public interface ControlesseguimientoSecureRESTService {
 
  @Path("/byIdControl/{id}")
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  List<ControlesseguimientoDTO> listControlesseguimientoByIdControl(@PathParam("id") Long id,@Context HttpServletRequest request) throws ServiceException;
  
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  List<ControlesseguimientoDTO> listControlesseguimiento(@Context HttpServletRequest request) throws ServiceException;

  @Path("/{id}")
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  ControlesseguimientoDTO showControlesseguimiento(@PathParam("id") Long id, @Context HttpServletRequest request) throws ServiceException;

  @Path("/{id}")
  @PUT
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  ControlesseguimientoDTO saveControlesseguimiento(@PathParam("id") Long id, ControlesseguimientoDTO dto, @Context HttpServletRequest request) throws ServiceException;

  @POST
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  ControlesseguimientoDTO createControlesseguimiento(ControlesseguimientoDTO dto, @Context HttpServletRequest request) throws ServiceException;

  @Path("/{id}")
  @DELETE
  Response deleteControlesseguimiento(@PathParam("id") Long id, @Context HttpServletRequest request) throws ServiceException;

}